CバスSCSIボードのスイッチ設定を読み出すフロッピーを作成するプログラム

[ SCSIDSW ] 使用説明書

Version 1.10 Copyright (C) 2017,2024 まりも(DOSsoft)

 

【このアプリケーションの目的および概要】

 CバスのSCSIボードの DIPスイッチ設定を表示します。対象となるのは、PC-9801-55または92互換のボードです。ジャンクで購入したがスイッチの設定がわからないという場合に、本プログラムを使って読み出すことができます。またスイッチ設定を一ヶ所づつ変えてみることで、スイッチの機能を調べることもできます。  DOSを起動して調べようとしても、ROMアドレスや割り込みの設定が不適切なSCSIボードが装着されている場合、システムの起動ができなくなり、読み出すこともできません。

 そこで、どんな場合でもすぐにフロッピーが起動できる「FDローダ機能」でも読み出すようにしたのが、本アプリケーションです。本アプリケーションのフロッピーを作っておけば、[ESC][HELP][8]押し起動で一瞬でSCSIボードの諸スイッチ設定を表示できます。割り込み(INT)やROMアドレスが不適切な場合でもこのフロッピーは起動できます。

 またFDローダ機能を持たない旧機種でも、通常のフロッピー起動ができる状況であれば、本アプリケーションで作成したフロッピーで実行結果を得ることができます。

【フロッピーディスクの作り方】

 まずPC-98の1.25MBでフォーマット(1024バイト8セクタ形式フォーマット)されたフロッピーディスク用意し、起動優先順位のトップとなるドライブレターのフロッピードライブに挿入しておきます。  FDLDMKFDも用意しておきます。

 コマンドラインから
FDLDMKFD SCSIDSW

のように打ち込みます。すると書き込みが始まり、起動用FDが作られます。

 なお、このフロッピーはシステムからダイレクトに読まれる物であるため、通常のファイルシステムに則った形式では書かれていませんが、それでは何だかりませんので、dirコマンドで見るとSCSIDSW.APPというダミーの(0バイトの)ファイルが存在するようにしています。この空のファイルは削除しても構いませんし、フロッピーの空きにデータを書き込んでも問題ありません。FDローダアプリケーションの存在する場所は「スキップセクタ」として登録したところにあります。chkdskで表示されますが異常ではありません。詳しくはFDLDMKFDの説明書のほうをお読みください。

【フロッピーの起動】

 フロッピーに入ったアプリケーションの起動方法には次の2通りがあります。

1.[ESC][HELP][8]押し起動

2.通常のブートプロセスでフロッピーから起動

 ボード設定が不適切な場合、ハングアップしてしまい、2.の起動ができなくなることがあります。1.のほうが確実で早く起動できます。そのほかDOS環境では次の普通の使い方も可能です。

3. SCSIDSW.COM をDOSコマンドとして起動

 この場合はフロッピーを作成しなくても構いません。既に述べたように、不明なSCSIボードを挿すとシステムの起動できなくなることが多いですから、1.の使い方を推奨します。なおSCSIDSW.COMはCPUが8086,V30の機種でも動作します。

【表示内容】

 起動すると次のような画面が出ます。FDローダとして起動した場合は再起動が必要です。電源を切ってもかまいません。通常のFDブートの場合は、表示後にブート装置を選択してシステム起動ができます。通電状態のままボードのスイッチを変更してまた実行しなおすと、変更箇所の表示が変わるはずです。なおSCSIDSWの旧バージョンではBSキーを押すと連続実行できましたが、1.10ではこの機能は廃止としました。

【注意・補足事項】

 SCSIボードの認識は、I/Oアドレスで行います。I/Oベースアドレスが所定の0CC0h,0CD0h,0CE0h,0CF0h以外のボード(例えばPC-9801-100ボード)は認識しません。SMITボードの場合はCCC0hも検索します。SCSIボードが検出できない場合、「SCSIボードが見つかりません」という表示が出ます。ハングアップしているわけではないので、ENTERキーを押せば再起動がかかります。

 92互換の非NEC製SCSIボードのなかには、ハードウェアのスイッチ設定がなく、[GRPH][CTRL][S]など(メーカにより異なる)を押してスイッチメニューを出す機能を持ったものがあります。SMIT方式SCSIボードは全てそうです。本アプリケーションはこのタイプのボードにも対応していますが、そもそも「スイッチ設定がひどく不適切」だとボードは98本体から認識されません。このような状態の場合本アプリケーションでも表示がなされません。

 「スイッチ設定がひどく不適切」の例としては、本体機種タイプの設定(SW2-7,6)が挙げられます。このスイッチを「ハイレゾ/ノーマル兼用」にしている状態でハイレゾモードのない普通の98(PCI搭載は全機種該当)に装着すると認識できず、設定もできません。ジャンクのSMITボードを入手して動作しない場合、本当に不良なのではなく、これに該当している可能性があります。この場合はハイレゾモード機で[GRPH][CTRL][S]などによる設定を行い、「ノーマルモード専用機」に直せばノーマルモード機で認識できるようになります。もしハイレゾモード対応機を持っていない場合は、ボードの再設定は不可能です。

 SCSIボードの2枚挿しは、SCSI BIOSが生きている限りできませんので、既にSCSIがある環境では、調べたいほうのボードのBIOSROMを無効にして下さい。無効にするには、SW2-8 をOFFにするか、ROM そのものを取り外します。また、種類に関わらず、SCSIボードのI/Oアドレスが競合しないように設定して下さい(PnPのSCSIボードなら大丈夫)。なお、BIOSROM有効/無効のスイッチ(SW2-8)の情報は、本プログラムでは読み出せません。

 本プログラムでは、PC-9801-92/55互換のCバスSCSIボードが装着されている枚数全て表示できます。ただしI/Oアドレスはそれぞれ異なっている必要があります。ボードを識別するのはI/Oアドレスです。I/Oアドレスの設定がわからないような場合は、2枚挿しはおこなわないでください。

【技術的説明】

 ほとんどの 92/55互換SCSIボードでは、スイッチの役割りが決まっています。少なくとも SW1,SW2は8連のDIPスイッチとなっています(しかしSW1,SW2の名称や形状が異なるボードもあるようです)。

 I/Oアドレスを決めるスイッチはSW3,SW4というジャンパピンのことが多いですが、物によっては SW1,2と別のDIPスイッチになっています。このときデフォルト側がONかOFFかは物によって異なります。本プログラムの存在意義は、これを調べることにあるといってもよいでしょう。なお、比較的古い(55互換の)ボードでは、SW3,4は ROMのアドレスピンA14,A15と連動になっているものが多いようです。SW3,4をデフォルト以外の設定にすると、ROMのアドレスは 2000hまたは4000hずれることになります。SW3,4を動かすとROMが無効になるのは、ROMアドレスがずれることで、データのない部分(値 FFh)が出現するためのようです。したがって、例えばI/Oアドレスを CD0hにしてもROMが動くようにするには、ROMの物理アドレス2000hに SCSI BIOSをコピーして焼けばよいということになります(ただしBIOSルーチンは CD0,CD2,CD4を使うように改変する必要がありますが)。そのほか、SCSIとは関係ないROMプログラム(例としてはIDE BIOSのパッチなど)を格納しておくということにも使えます。

 プログラミング上の参考資料として、小高輝真・こうのたけし 共著、Undocumented9801/9821 vol.2 があります。 http://www.webtech.co.jp/undoc/

 本プログラムでは、SCSIボード標準の 0Cx0hを叩いてDIPスイッチ読みだしコマンドを送り、読み出した値を表示しています。添付ソースプログラムがありますが、フリーソフトを作るのにこれを参考にすることは構いません。

●資料 SW1,SW2の意味
bitと書いてあるものは、値0 が スイッチのOFFで、1 がONです。
設定が禁止されている値もあります(例 DMAch2 , INT6,INT7 )。

■SW1
1  SCSI ID bit0
2  SCSI ID bit1
3  SCSI ID bit2
4  INT LEVEL bit0  (#)
5  INT LEVEL bit1  (#)
6  INT LEVEL bit2  (#)
 (#)  0=INT0(IRQ3),   1=INT1(IRQ5),  2=INT2(IRQ6),  3=INT3(IRQ9)
      4=INT41(IRQ10), 5=INT5(IRQ12), 6=INT6(禁止),  7=禁止
7  DMA channel bit0
8  DMA channel bit1   (2bitで DMA ch0から3を表す)


■SW2
1  ROM address (N) bit0   (*)
2  ROM address (N) bit1   (*)
3  ROM address (N) bit2   (*)
 (*)値  0=D000, 1=D200, 2=D400, 3=D600, 4=D800, 5=DA00, 6=DC00, 7=DE00
4  ROM address (H) bit0   (+)
5  ROM address (H) bit1   (+)
 (+)値  0=E800, 1=EA00, 2=EC00, 3=EE00
6  HOST PC TYPE bit0      00b   V30,8086      ,  01b   PC-98XA
7  HOST PC TYPE bit1      10b   ハイレゾ兼用  ,  11b   80286以上ノーマル
8  ROM kill (OFF)/ ROM enable(ON)

【お約束】

 著作権は保持しますが、フリーソフトウェアですので、自由に使用してかまいません。ただし不特定多数がダウンロードできる場所に置く(公衆送信可能な状態にする)ことや、二次的な譲渡や販売を行うことは禁止とします。

 このソフトを使用したことによる損害(起動不能、何かの設定への干渉など)に関し、作者は一切責任を負わないものとします。自己責任でお使いください。

【改版履歴】


日付    版   内容
2017-11-23 1.02  公開初版(移植元のSCSI_DSWと同じ)
2017-11-24 1.04  ハイレゾモード対応、SMITボード検出強化
2021- 3-17 1.05  SW2 6,7の機種タイプ名(XAと8086/V30)の入れ違いを修正
2024- 9- 8  1.10  FDloaderアプリとして更新、旧DOS版(scsi_dsw.exe)は統合のうえ廃止

[戻る]